1. Field of the Invention
The present invention is directed to computer systems; and more particularly, it is directed to the editing of digital images and digital video using computer systems.
2. Description of the Related Art
Digital image editing is the process of creating and/or modifying digital images using a computer system. Using specialized software programs, users may manipulate and transform images in a variety of ways. These digital image editors may include programs of differing complexity such as limited-purpose programs associated with acquisition devices (e.g., digital cameras and scanners with bundled or built-in programs for managing brightness and contrast); limited bitmap editors suitable for relatively simple operations such as rotating and cropping images; and professional-grade programs such as Adobe Photoshop®, Adobe Illustrator®, and Adobe AfterEffects® (all available from Adobe Systems, Inc.) with large and complex feature sets.
Digital images may include raster graphics, vector graphics, or a combination thereof. Raster graphics data (also referred to herein as bitmaps) may be stored and manipulated as a grid of individual picture elements called pixels. Suitable image editors may be used to modify pixels (e.g., values such as hue, brightness, saturation, transparency, etc.) on a pixel-by-pixel basis or as a group. A bitmap may be characterized by its width and height in pixels and also by the number of bits per pixel. Commonly, a color bitmap defined in the RGB (red, green blue) color space may comprise between one and eight bits per pixel for each of the red, green, and blue channels. An alpha channel may be used to store additional data such as per-pixel transparency values. A black and white bitmap may require less space (e.g., one bit per pixel). Raster graphics are often used for photographs and photo-realistic images.
Vector graphics data may be stored and manipulated as one or more geometric objects. The geometric primitives (e.g., points, lines, polygons, Bézier curves, and text characters) may be based upon mathematical equations to represent parts of digital images. Suitable image editors may be used to perform operations on these objects such as rotation, translation, stretching, skewing, changing depth order, and combining with other objects. Vector graphics are often rasterized, or converted to raster graphics data, in the process of displaying the data on a display device or printing the data with a printer. While raster graphics may often lose apparent quality when scaled to a higher resolution, vector graphics may scale to the resolution of the device on which they are ultimately rendered. Therefore, vector graphics are often used for images that are sought to be device-independent, such as in typesetting and graphic design.
Many digital image editing operations, also referred to herein as effects, may be applied selectively to a portion of the digital image. Using prior approaches, a digital image editor may define a portion of a digital image on which an effect is applied using paths, masks, and selections. A path may comprise a vector description of a line, curve, or enclosed object (e.g., a polygon). A mask may typically comprise any image having a single color channel (e.g., a grayscale image). A selection may represent a region of interest in the digital image and may include one or more pixels (comprising one or more color channels) and/or geometric objects. A selection may be represented by a raster image mask having a single channel indicating per-pixel or per-object membership (full, none, or partial) in the selection. Typically, an effect is applied uniformly (i.e., with fixed parameters) to the path, mask, or selection.
Similarly, digital video comprising a sequence of frames may be edited using suitable authoring programs such as Adobe AfterEffects® and Adobe Flash® (all available from Adobe Systems, Inc.). Using a digital video editor, keyframes in the video may be identified (e.g., on a timeline), and parameter values of an effect may be specified at each of the keyframes. The effect may then be applied in such a way that the effect transitions from the beginning to the end of the sequence of frames, including intermediate frames for which parameter values were not specified by the user. Within each frame, however, the effect is applied uniformly (i.e., with fixed parameters).